{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2022.09.1pre\n"
     ]
    }
   ],
   "source": [
    "# NBVAL_IGNORE_OUTPUT\n",
    "from rdkit import Chem\n",
    "from rdkit.Chem import Draw\n",
    "from rdkit.Chem.Draw import IPythonConsole\n",
    "from rdkit.Chem import rdDepictor\n",
    "IPythonConsole.molSize = (350,300)\n",
    "IPythonConsole.drawOptions.centreMoleculesBeforeDrawing=True\n",
    "from rdkit import RDLogger\n",
    "# in case the RGD code is verbose (should only happen pre-release)\n",
    "RDLogger.DisableLog('rdApp.debug')\n",
    "import rdkit\n",
    "print(rdkit.__version__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from rdkit.Chem import rdRGroupDecomposition\n",
    "import json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ms = [x for x in Chem.SDMolSupplier('./simple1.sdf')]\n",
    "len(ms)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# NBVAL_SKIP\n",
    "IPythonConsole.drawOptions.addAtomIndices = True\n",
    "Draw.MolsToGridImage(ms,molsPerRow=4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  {'Core': 'Cc1cccc([*:1])c1[*:2]', 'R1': '[H][*:1]', 'R2': 'CO[*:2]'}\n",
      "  {'Core': 'Cc1cccc([*:1])c1[*:2]', 'R1': '[H][*:1]', 'R2': 'CO[*:2]'}\n",
      "  {'Core': 'Cc1cccc([*:1])c1[*:2]', 'R1': 'CO[*:1]', 'R2': '[H][*:2]'}\n"
     ]
    }
   ],
   "source": [
    "res,_ = rdRGroupDecomposition.RGroupDecompose([ms[0]],ms[1:],asSmiles=True)\n",
    "for row in res:\n",
    "    print(f'  {row}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# testing against reference data:\n",
    "with open('./simple1.out1.json','rt') as inf:\n",
    "    expected = json.load(inf)\n",
    "if expected != res:\n",
    "    raise ValueError(f\"MISMATCH:\\n{res}\\n   !=\\n{expected}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  {'Core': 'Cc1c([*:3])ccc([*:2])c1[*:1]', 'R1': '[H][*:1]', 'R2': '[H][*:2]', 'R3': 'CO[*:3]'}\n",
      "  {'Core': 'Cc1c([*:3])ccc([*:2])c1[*:1]', 'R1': 'CO[*:1]', 'R2': '[H][*:2]', 'R3': '[H][*:3]'}\n",
      "  {'Core': 'Cc1c([*:3])ccc([*:2])c1[*:1]', 'R1': '[H][*:1]', 'R2': 'CO[*:2]', 'R3': '[H][*:3]'}\n"
     ]
    }
   ],
   "source": [
    "ps = rdRGroupDecomposition.RGroupDecompositionParameters()\n",
    "ps.matchingStrategy = rdRGroupDecomposition.RGroupMatching.NoSymmetrization\n",
    "res,_ = rdRGroupDecomposition.RGroupDecompose([ms[0]],ms[1:],asSmiles=True,options=ps)\n",
    "for row in res:\n",
    "    print(f'  {row}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# testing against reference data:\n",
    "with open('./simple1.out2.json','rt') as inf:\n",
    "    expected = json.load(inf)\n",
    "if expected != res:\n",
    "    raise ValueError(f\"MISMATCH:\\n{res}\\n   !=\\n{expected}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
